One or more embodiments disclosed within this specification relate to data storage systems.
In a storage subsystem, hard disk drives (HDDs) typically are grouped together forming a redundant group of independent disks (RAID). There are several types of RAID schemes that are commonly used. These schemes are identified by the word “RAID” followed by a number (e.g., “RAID 0,” “RAID 1,” “RAID 2,” “RAID 3,” etc.).
With the exception of RAID 0, which implements block-level striping across multiple HDDs without parity or mirroring, RAID is a storage technology that functions through redundancy to increase the reliability of a storage subsystem. In a RAID 1 group, for example, fault tolerance is provided by mirroring the data on multiple HDDs. In a RAID 5 group, block-level striping is implemented across multiple HDDs, and parity information is distributed across the multiple HDDs. The parity information can be used to re-build the RAID group in the case that one of the HDDs fail. Thus, the available storage volume is equal to X(n−1), where X is the storage volume available on each individual HDD and n is the number is HDDs in the RAID group. In a RAID 6 group, block-level striping is implemented across multiple HDDs, and double parity information is distributed across the multiple HDDs. The parity information can be used to re-build the RAID group in the case that two of the HDDs fail. Thus, the available storage volume is equal to X(n−2).